package com.ict.ais.artificial.facade.api;

import java.util.List;

import com.ict.ais.artificial.facade.model.AppointTarget;
import com.ict.ais.artificial.facade.model.Config_Fusion;
import com.ict.ais.artificial.facade.model.FuseTargetFromSource;
import com.ict.ais.artificial.facade.model.UpdateTarget;

public interface IArtificialService {

	/**
	 * 目标合批
	 *
	 * @param shipId1 合批目标1
	 * @param shipId2 合批目标2
	 * @return
	 */
	AppointTarget mergeTarget(int shipId1, int shipId2);

	/**
	 * 目标分批
	 *
	 * @param shipId 分批的目标号
	 * @return
	 */
	List<FuseTargetFromSource> separateTarget(int shipId);

	/**
	 * 目标属性修改
	 *
	 * @param updateTarget
	 * @return
	 */
	AppointTarget updateTarget(UpdateTarget updateTarget);

	/**
	 * 根据信息类型消批设置发MQ
	 * @param timeSet
	 * @param typeSet
	 * @param userName
	 * @return
	 */
	boolean setMQBatchEliminationForType(String[] timeSet, String[] typeSet, String userName);

	/**
	 * 根据信息类型消批设置存库
	 * @param timeSet
	 * @param typeSet
	 * @param userName
	 * @return
	 */
	boolean setBatchEliminationForType(String[] timeSet, String[] typeSet, String userName);

	/**
	 * 消批获取
	 *
	 * @return
	 */
	Config_Fusion getBatchElimination();

	/**
	 * 不同信息类型消批设置的获取
	 * @return
	 */
	List<Config_Fusion> getBatchEliminationList();

	/**
	 * 属性修改时，负责存储之前属性与新的属性
	 * @param newOne 修改后的属性
	 * @return 是否成功存储
	 */
	boolean updateAttributeSaveTable(UpdateTarget newOne);

}